package co.gov.medellin.ssti.sub.model.service.impl;

import java.util.Collection;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import co.gov.medellin.ssti.sub.model.dao.AuditoriaDAO;
import co.gov.medellin.ssti.sub.model.dao.exception.DAOException;
import co.gov.medellin.ssti.sub.model.service.AuditoriaService;
import co.gov.medellin.ssti.sub.model.vo.AreaVO;
import co.gov.medellin.ssti.sub.model.vo.AuditoriaVO;
import co.gov.medellin.ssti.sub.model.vo.SubprogramaVO;
import co.gov.medellin.ssti.sub.paoyer.administration.model.vo.UserVO;

@Service
public class AuditoriaServiceImpl implements AuditoriaService {
	@Autowired
	AuditoriaDAO auditoriaDAOImpl2;

	public Collection<UserVO> findUsers(String cedula, String descripcion) {
		try {
			return auditoriaDAOImpl2.findUsers(cedula, descripcion);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public Collection<AuditoriaVO> findReporte(String tabla,
			String fechaCreaDesde, String fechaMofificaDesde,
			String fechaCreaHasta, String fechaMofificaHasta,
			String usuarioCrea, String usuarioModifica) {
		try {
			return auditoriaDAOImpl2.findReporte(tabla, fechaCreaDesde,
					fechaMofificaDesde, fechaCreaHasta, fechaMofificaHasta,
					usuarioCrea, usuarioModifica);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public Long findCantidadRegistros(String tabla, String fechaCreaDesde,
			String fechaMofificaDesde, String fechaCreaHasta,
			String fechaMofificaHasta, String usuarioCrea,
			String usuarioModifica) {
		try {
			return auditoriaDAOImpl2.findCantidadRegistros(tabla,
					fechaCreaDesde, fechaMofificaDesde, fechaCreaHasta,
					fechaMofificaHasta, usuarioCrea, usuarioModifica);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public Collection<AreaVO> selectSecretaria(int iCodeUser,
			String strGroupUser) {
		try {
			return auditoriaDAOImpl2.selectSecretaria(iCodeUser, strGroupUser);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public Collection<UserVO> findUserAdm(String strNameGroup, Long lCodeArea,
			String strNameUser, String strFind) {
		try {
			return auditoriaDAOImpl2.findUserAdm(strNameGroup, lCodeArea,
					strNameUser, strFind);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public Collection<AuditoriaVO> findReportControl(SubprogramaVO criteria) {
		try {
			return auditoriaDAOImpl2.findReportControl(criteria);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public String findDescriptionUser(String strNumberDocument) {
		try {
			return auditoriaDAOImpl2.findDescriptionUser(strNumberDocument);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

}
